{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1455, 2048, 3)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x10d418f60>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAD8CAYAAABErA6HAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJztvX+QXcd1HvgdkaFEjSCJlGRaIQkLium4EAQDySyNqiZwuSwHA8laU7vrjEeejQbjIbipCIm9SGpMxSnIC9u1MpQgkgtZeQmOBsPUrEYTxS6xsloAWsVez6JWE5EyAEOQZcGEDJFLibYkU8iQtkOr9497z3vn9XT37b6376/37lc1Ne/dd3/07R9fnz7n9DmklEKHDh06dGgOXlZ3ATp06NChwyA6Yu7QoUOHhqEj5g4dOnRoGDpi7tChQ4eGoSPmDh06dGgYOmLu0KFDh4ahcmImooNE9BUiukZED1f9/A4dOnRoOqhKP2YiugXAHwH4+wCeBvAFAO9VSl2trBAdOnTo0HBULTG/DcA1pdRTSqm/ArAG4IGKy9ChQ4cOjcatFT/vbgBfF9+fBjAhTyCihwA8BACvePltP3Lv3/z+3A8bu/12bL34ovE4I+t3F0zX+pSpQ4cOo4WLV7/yZ0qpN/ieXzUxZ0Ip9QiARwDgLX/nh9X/8i/+aa77TOzb2/u8efGy8Tf9uOlaF2zX+5arQ4cOo4E79+z/k5Dzq1ZlPAPgXvH9nvSYEXkkUsbmxctO4sz7m0Qeks1D5h06dBgtVE3MXwBwHxHtIqLbAMwAeDzGjV0kqf9WFjl20nCHDh1ioFJVhlLqJSI6AuAcgFsAfFwp9aUY97aRbV4S3rx42Ztos1QjHTp06BCCynXMSqnPAPhMyDW+OuFQYpzYt7ewnlmeV5Vk3qFDh+FG43f+ZakoXMSYhRh6Zhf08nSqjg4dOvigcV4ZOrLIM4v86vSc0J/dSdAdOnTwQeMlZonYEqgucceG6d6d1NyhQ4cstIqYy0AZUmxRvXWHDh1GG41XZQB2QsvynHCRbpn6346AhwObFy/j3KVNTI0nm1PPXdrEsbnDNZeqwyig9RJzEXe4GNKy6R6xXfc6VA9TW02NT+D4ymkcXzldQ4k6jBIaLzH7bK2uGybJncsaUsYQ3+kO5UH2M11aPndps65idRghNF5i5kESIpkyQkmxCEzXh5Ksy6+6QzXg+j93abNHwucubWJ99UJPUl5fvVBb+TqMBhpPzIC/v7HJPS3PRpEQsGdH3uvzTDgdyoWUiqWOGehIuUM1aAUxZ0Hqi/Ps/osNX6K2TRyd5FwfuD3WVy9gffVCj5SnZyd758jPHTqUgaEgZh0hhr06CdC0lZyPdbrmesHku7B4sic1s7TceWZ0KBuNN/4VhU56TZREOxJuFo7NHcbmxcsDKoyFxZM1lqjDqGHoidk3wFEeL4oOwwuWkjtC7lAHhlKVIaGrNcrehp0XsfyqO8TB1PgEzl3a7PTJHWrB0BOzhA/x1UWOTZ0wRhUsMUt1RocOVWHoVRkdOhSBlJp1Vznesq0fv3L+TFXF6zCkIKVU3WWw4ofe/APqN37lF2t5die9jjbkykn6Na+vXsDSiaOY2LcXew4cct6Dzxt1NHXHbpW4c8/+J5VS9/ue32hVxtjtt9ddhFrQ6ZqbCZaMFxZPZpKyPK9rz0F09ZGNxqsy6nBxq2NGtwXVH0Xpoq3Y2nkQYzfObjvOnh2joOII2T+Q1bdjhDloKxpPzGVmtHZFgSuzA4S8U0fQ9cN3G7aJlCWOr5yufXOKT9/Lk6ItjwBlUnF0bq0JGq3K2HrxxdLuXVckt24Z1x6cu7QZ1Y+5LXE22HXTJ0ZN3lAIrnv6njvMYyk3MRPRvUT0O0R0lYi+REQ/nx6/k4g+S0RfTf/fkR4nIvoNIrpGRJeJ6K2xXmIUMMydsM3Y2nlw4HuW37OPbros5OlDNgJsyi7aJpShDBRRZbwE4J8ppb5IRDsAPElEnwVwCMDnlFIfIqKHATwM4BcBvBPAfenfBICPpf9LA1vT6/ZFjdV5TDE1OpQDkxucCbr6oqlScRlhbZuCYYxjnltiVko9q5T6Yvr5JoAvA7gbwAMAVtLTVgC8J/38AIDHVILPA3gtEb0xd8kdkLF0+bsJvuFEm4iml28YUNauv6ql5lHoK8Om2oiiYyaiNwF4C4BNAHcppZ5Nf/oGgLvSz3cD+Lq47On0mH6vh4joCSJ64vnv/pfgsoRmmBi2mbZDHHDYT4ZO0tOzk4WJW+pyh4lU6sSw1GNhYiaiVwH4DwB+QSn1XfmbSnavBO1gUUo9opS6Xyl1/2te/aqixctE2VLzsHSUUYWNkIuqLGwJEmL3l1Hsf8PwzoWImYj+BhJSXlVK/VZ6+Jusokj/P5cefwbAveLye9JjHTo0CnJgr69ewPTsJKbGJ7B04igA9D4XIWeXt8cwEIsP9NVtzHyKba/D3MY/IiIASwC+rJSSvexxAHMAPpT+/7Q4foSI1pAY/Z4XKo/SoacIqgI+ncPVGes2Wo4qJvbtHZCUZTtw1DlGDOnZhBiG3iaTk8ynaDo+6n2/iMQ8CeAfAvhxIrqY/r0LCSH/fSL6KoCfSL8DwGcAPAXgGoDTAP5xgWdbEbtBy+rcuoHSdk6H6mHKks2QE3wXEjQfsvr1qJMyUMwr4/9RSpFSaq9Sal/69xml1LeUUu9QSt2nlPoJpdS30/OVUur9Sqm/pZT6u0qpJ+K9RvPgIvSOcJsNKaHqbVVHYtY8O+qaLC13yEbjt2THRF51hstPMnQ/f2w9WhdvoHyY+g3HauawoKEkzfrq2AglZNfEUwZiSsu27ERN2fxSBENHzD7qgaLk7LufP7RssRHLq2RUiVzvJ6YBbyNnJt4YW7p967/NpBz6bFkntkzzbcbQEbMPipBz02AjzlhlbXsHz4siaoqlE0exsHgyilQcUv9NkBRtxrvOyB2GoSLmWBJpHR4cRZBHBzmqhOuLpRNHe/1JkrSrX7AxMCtXoK/RME8bFSHn0H5fl61kFPpuo4n5+Re2Sru3nNlNHaxt5ByKUQmfmAdcN9z+3Eemxie8iG999QKunD9jPa8J/cpGqj7qjTqN16PSXxtNzED5fo2uTlY3OVfx7CzpedQI3JUGyZeQlk4cxebFy1FDhrYd3Jc7jyQ/NDoecwjKaPAmSDZVwuRm5WvwHAbYtkkzfPtD7DjOTYGP730WTN4tvhgV4QBoETFnSbbDiKrey5bWij9P7Ns71IPCNyi8DTq5xPJvzuuPnNVWbR0voyAcMFpDzIC5Q7W1k/mgSondJi0OMyH7wEfyNfVBl4FvYfHkwF9WH66TkLqVaD1oFTED1RFx13lGY+lYxINB/me4QoWGglcqTWkH3zHhc17e8TUqUnPriBkYHAx1GAXzooyyxtD7mdBt603AvsgmcnSRsg4OFyrjOG/tPIitnQet1+kqpba0xzCvYqtC470yhgkhHVa6aPncq4zJqimSWt0oGp7SJDnruQKz3PBC2iJWnJayV43dqtSO1hJz3a5sZcO2VA65dpjrJxZ8/JKLuHoxKettsbxxtfdZJ2kTTGFAQ8IExILN779DXLSWmNvUQeoqZ0fQcSGD5gP523Xm1NVtx3Y9uIb5/TdxbO4wgO2GV55Aso5lIUZf6PpT+aAk+1Mzcdf3v1797Pt+cttx2THKJL0YHbBJk0eRQDHDjBBpU67UZNvajH56neukPHbj7DZVB5NzUbRFJx2CtvbJO/fsf1Ipdb/v+a2VmBlVkXQImlIOiU7KscMWBMqm5ghpX5N0LMGkzNI4ABxfOd07duX8Ge9n6ZDv5UvSJjVJyPUd4qCVEjPgJpoYxFiEyJpIzEDYO+n+u9Ozk9EkubaDiRPY7onB9cTnLG/ssN5n7cjungQu/8t7b+08iOuPzkR+g+JoAlHrqhzXdvoQuCblvHjn//D+IIm5I2YL8hJzU0kZyH6nc5c2M3etdQSdDFxbXV05fwbHV073SJbJVcf8/pvO0Jg6oTeRnIHs3IRNIPA6oPPARz782GipMspA25b9voZQmyeLDyEz1lcv9Jbdo0rQctOHKTg+Y2p8wioxm9qBj82cuoqxG2cHfttz4GwhtYYLscizDBI29esmj89YgtlQEXOTpdWyEULO8hogX2yH9dULvTCYo4jjK6d79ba182CPSCU5JXVtV2XI86SEPQazC92uB9cwduNsaWmpmgZXaNKmknMsb7GhIuaildLUxnahqC68SMCdhcWTTilumJexyxs7MD87mfzffxPrq33C4DaxSctjN87i3KWb2467JOwOfTR9nMYg58JbsonoFiL6fSL6j+n3XUS0SUTXiOiTRHRbevzl6fdr6e9vKvrsDoOoo8NKQxijTduHi4BJdGp8YpvLm2tgmqRhW6jQsRtnB/62dh70Cnw0rGg6KTPkBJ0HMSTmnwfwZQCvTr//OoB/o5RaI6LfBLAA4GPp/+8opX6QiGbS834mwvMz4WPQaiNC8qqVhfXVC1665mHf7GJy22Qi1cHeGCZI3TLH0tCxtfMgljeS3YNrR3YXLXojMSwTD/eLj+CxoOsKScxEdA+AnwTwaPqdAPw4gE+lp6wAeE/6+YH0O9Lf35Genwu+DeezVGeDVts6Q9HyxoiENj07aXRT0iOjFZUgmor5/X2VBLfH8sYOHJs7jKUTR3H90Rlcf3RmgHBtG1N08DXyWv3YzKmrvb8OzQIHGMszTouqMj4CYBHA99LvrwPw50qpl9LvTwO4O/18N4CvA0D6+/Pp+QMgooeI6AkieuLFF//CqxCmuBJMtiFYX71QKPOEyShRFRkVIekiK4aiddZGcF3rLm/82STFSoOdnKSmZyedfVVK3ZKUTZL0zKmrrRMuhhW16ZiJ6N0AnlNKPVmoBBqUUo8ope5XSt1/++2vcJ5rm42KZpAIIRp9VpQGIJnMsyyJMeZALEulM2yeG1K3rEPX/+qrCVZjhBheWb8cUrY2o+2TS91eGZMAfoqI3gXgFUh0zB8F8FoiujWViu8B8Ex6/jMA7gXwNBHdCuA1AL5V4PkDiN2YC4snM92S8rjzlJGUsmyVBv+u/xYrhdIwgfsMbzJhsOsct5Ve5751KaVnW1S6mVNXjRtYOpSP2v2YlVIfAPABACCiHwPwz5VSs0T07wH8NIA1AHMAPp1e8nj6/f9Nf/9PqoRthz6GPt9BYCPnts/oDK4LWSc6CZsGd15SGXbwxpClE0cHosQl/scXMC8i0+mk7RP6E+irM1znJ+dMNtrfNw+G6V2yUEYGk18EcJSIriHRIS+lx5cAvC49fhTAwyU82wkmG5lFIgt5gqSXmVonNvR6mJ6dxNKJoz2yNalm2urFEgOslnF5Q7AqjF0J5/ff7BGpVH2ZpGcTpLsckE3KSyeOlrIyqwKubelNR8y6jrLBRCn1uwB+N/38FIC3Gc75CwD/IMbzfOBDHmVJe76SShNiSuvSr06+x+YO92JDuPTkx1dOj8QWbY6brAe5Ya8IJs1dD64B2JEGxLfrpHVk6ZJ9SJlhIuemCAQd3Ghlzj8b8pCsSWIsKhGGdP46B4qtvib27cWxucOYGp/oSX3H5g4bjXi6KmSUNpZM7Ns7QHr6ZhD9T2bFln/c33wNfKHQ1SZ1CwOjhLzje6i2ZEtIwsgiWh8iDunMbdHtSUKV0jKD/ZD1nXw2j4LQbBpthYz01o8XctUpzbLqw1Z3Yx7PDZGWdeirM1e4Uf26qtBmNYYNeSfBoZKYdfiQsg0ygDnQLCnYZEDKg2NzhwfqRyfi4yuncXzldE/KYgnRRCyjondmUratDEwbSiRkm4UEI8oi5enZycwNDa6dojaXziKbJDrkx1ATs697Vxt3pcUgZ9YL6/UkQ1ryH+uPpQ46htqnbdj14FqPlG3kvOvBNWNwJya4pRNHe6Qs689Evksnjm7bYCLBkrLet0PIVD/PRdJ1oW3jsyiGVpUBbDdsmUhE37ll2lyiG75cHbTMDpTlGw34Dx5egm9evNxbykpVxMS+vVg6cXRALcNEpKs9+JmjoMbgLdiuRKhymzZ/lyoDvY2WThzdFoNZqplYDbKwOEjMUn3B//PuwrSp35qYum0UMNTEnAVfiaAJHha+hB9aDp1YdHLWszID9uDlo6Bj1rNYy3e+/ugMdj24huuPHk69MvqQKxy9/hYWT/Z0zCwdr69u1xnr5GtShfAxVjmFqPO4XCbvGjmBj5r06ouYHDBUqgxTB2S/3NC0SnydCXKpp2+9LgOh9/XZAs4SMiOLUPVl+6jFx9Ah3eVMoU8l5EpLEtvU+MRAn3OpLCSkKsT1TD4nNG6M6X2GfcKNjaJhGIaKmHUwUesDwgTuyLoxrMxsEVUYVbI6h4972/GV0z0ikpk7gP6ENooD99ylTcycuopjc4exdmT3gJTM6gep1uC24DrjyU2G94ztMidJvAg5j4IbZAyYxlsech46VYa+aUTXC/tUEutQuTOWsXwL0QWXDX3Q2QahJF8mllEz/nHdsK/3sTn0vq8d6dcRbzgxqcu4f7JumVGWHzM/Sz7bp91sm4Y6dUb5GEqJOSSbhA7d2LGweDJqJ8ySkk0qkjJgurepXFmDsIhLYpvBqwcpJTPJ6vplxsLiSayvXuitzKpWB+nqDR9kqWnKhG5EHSUMncQswQlD+5sAwpZkUtouQpJNkI6Lxu/Yc+CQ9bdR2IotofeHxOA3M/B514Nrwpuib6yTE3NZ6ossLJ042pskQiTnTp1RHRotMb/mlYmtOk/Qe12/7JuHTt8dxeReBG1Z9uXVd7tIexjB7bm+eqFHqiwlj904OyAxc4RC3gCi38NGymVnwl46cRRXzp+xji29z/JGoyowLLv+iqDREvPzL2wBKJb2iKUCXb+WtZSPucxsuv8nL8Hn95t/lz7NOrhOOf7wKLjMMWz5+BhMyqYNHC5UoRriNuKNMHsOHBp4btP77LCj0cQcAzKusE9sAP26GNHnfP0b9fgFZUPPE8fLVekKxuXQyVZ3L2TJy7TjbdTAW6SnxhOp17RJg32XdXWGbQLMCx+j9+bFy7hy/gw2L172Mui2ZQXYZjRalRELkhh9OxUTTYwlpR6cxbVUK1tSyRP7QKqB+FrbhDVqag0dnFnEtnmJd5faXORiT8o+u1XlhiJWb7jQxc4wI2a9NFpi/s63/0up93elVIq1nLRFzJKfTdbnslz0+J55sirzu2QNXCbnUZSedfWGaTs/G9/088tWYdj6lK5+4nbz9cgYVfc5GwmHCoEmjITEDJgrSQ4EHwNIEbikZNtvsWZfvaNkkbJuJJXXS5erLIyK9KxnGAHMm5rYE4IlZr6Wwau02NJoVj+22QRs3ja6K2fZ4QiaBpNkLAN+xUCjJWagmJ/s8sYOjN04m2n0498YsQhZbzyWjE1EvLyxoxS/zRBpRtcvM2zBnXwgpedhcLcy1Y/JCKgTMjC4yUPXKXM/X97YgfXVs9ElUBlAKeTex+YOD0jOrkBaRSTnthC7z6pROhx0W7I1HJs7jOuPzgwMGpZWqugE/AyTTnl+/00jCZsIu2hZfQM1AW5JOjR2sB4WdFikZ06z5YtzlzYH6oHbmOtI+hNLwq4avGHGNHmG2GWGGSHtLnNm5kEriDm0weUSzNTR9fsVkZZN3go82Hig8Z++1CmbnPNc55Jq2R/XtYLhiVAG6uFrhiXwUZYPMof5ZImJ21zmBZQrOVM85bLKbevfE/v2DmzE0n/r0IdvWxVRTbWCmIHsIPemDucyXhTRB3E4TNlhJSGXgaKSMxNFlvP+zKmr296NwYPXBtOSXpZ7mMgZMBvreLefbuzjeudJWl6r10nZm0tscBGwy7uD+9Ywb833NXybkOeaQjpmInotgEcB7AGgAPwcgK8A+CSANwH4GoBppdR3iIgAfBTAuwC8AOCQUuqLIc/T9c0mkpDHQiskjz6Il7a+z9L9o6UvK4BUkoproZe6riRrsx3z+2/2tuDayDmLXHkl4OOq1WZMjU/06pPd5HQkOuOTAzn9WJcM7fysvH1VwrVyMnkdxHIt7ZCgqMT8UQBnlVI/DGAcwJcBPAzgc0qp+wB8Lv0OAO8EcF/69xCAj+V5YBYBMpmE6DSL6oOKSsm8JI6pX+TJIs87+cbMYF9c6ZNrKoeOYZKagUFS5nfj1RP/xn8uA/TWzoO1143JZ122oVxpZvm0F4EeLrVO1CFY5CZmInoNgB8FsAQASqm/Ukr9OYAHAKykp60AeE/6+QEAj6kEnwfwWiJ6Y+6SG8C65TwRsXxjYtiWez4SruscPa1QUeQdLGxdZwLmgbrnwCEcXzntVTZbPQ6bcYjTQemub8sbO6wT1vLGDudAr4KcbX2YvXLk73LHrMSwtaUvpFG7TNVNEYl5F4A/BbBMRL9PRI8S0RiAu5RSz6bnfAPAXennuwF8XVz/dHpsAET0EBE9QURPfO97f+1dGBk9Lm+nCR0QrMbQY0DbGi2rXFmNHTJzZ+l7s56xdOJoL0A+l03e25W1me8zrCoMANs2iEjJOAvLGzuwdmR35WEts9pDt5lISB92PaEEEFf11qZwn2WRcxFivhXAWwF8TCn1FgBb6KstAABKKYVE9+wNpdQjSqn7lVL3v+xltwQXKs+ONglb59UlCT2WhGkWrcsYoi89+VjIklCPspfn+XosjWGFTb/sgqs9Qu/l+7wsaR0YVGW4VGFM1NyudasbyoQeI113NihjnBcx/j0N4GmlFLfcp5AQ8zeJ6I1KqWdTVcVz6e/PALhXXH9PeiwIMigRgwkzUWFUGzLQNxhSDAT5k2r+277lCAn05Hq+nKRMpDwM23hZdRFKpPP7b2a++8ypqz0PjyIY0AHvPJh6h5gzk8hrGHpCV73co2zwk8Zt0/iSv3/kw38cdO/cxKyU+gYRfZ2I/rZS6isA3gHgavo3B+BD6f9Pp5c8DuAIEa0BmADwvFB5eEEPS6h3Et7pVwS6rtm000t+9yEw9g+VRpUsFCEt9pPNcz8bYfJ7+sbKlZsmbL+3mZiZkIqs0JJ+0K9Pvc0WFot5aeiGuX7Uu4leIH+THz5Dtp/ejm1uuyKwrZrluNHrdGLfXnzkw48FPafolux/AmCViG4D8BSAeSTqkXUiWgDwJwCm03M/g8RV7hoSd7n5Ig82BfIeuxF/uawHeJE53+R3G0xO+3rZYy7zbUTRG6Qe0p0MvMOGVF/peX7/Tayv+pe3zSiqNpOTnE2g4JjOoZCkrE/UE/v24vqje7HrwTXM798ckJ5NhLu+emHbphjbucMKm+uortKMhULErJS6COB+w0/vMJyrALy/yPMYpkpY3tgx4CtaBnRSzoJtJxX/xmSnL4NMahq9DC64djty2iMT5BLbRcTST5nj9/YHbPIuLmmZEWu5XhfWjuz2Jmd+T1u9mlY5eSGN2Kxm4fsvb+zoJZC9/ugMNi9e7vUH2RaSdLZ2HsTakd04d+nmNgl6FMi5jp2PjQ9ixLD5f3KlJZ1sdymuRi4y1DdcSF2cb4OadHi2a02qlRAcXzndy1TCktKeA4e26UldBC3Ly9KcHujIZxWQEFF7idmHlKWHAUuxWzsPGjf66G2Qh6hnTl11rorGbpzF5sW+CoOlZ/Yw0tWBWzsPYn7/zZ7xW/4+SuRsQ55coj5ozZZsH+Sd2bKMN/K+pmdkhQ/VIV3JTEvDrPew/X7u0mbmYJYSz54Dh3r+ynydzU1KYnp2srczUC+LfJ8yvAvqxMS+vb228+lr+gqESVmHHjKU4et+x/BVN5nOm9i312gQXDuy22koLCNMaRthCtNQBENFzFkw+V8Cg0u4rZ0HBzqaj4SqxyjWpWV2QZKE7Aomkweuga/DZZDjCHx6FD5J0Kx75ohk0vdZQpe8bOVu+sCeOXUVM6euYteDa71ogTZ1EGPsxtmeump99UJv04kJ0hdaJ+gyos25hAcp4ZvKq4+VsiffNkrjvomfXWgNMRc1kE3PTg5IBVL3xslGTZAVnEWarg0iknxY2pQ+0CGqD70sfO/Yg0SGSXX5swIJebnUSDaCYQNYU8k51MCnBymSwYt8oMdN4f7pA5vHjE0it4H7MaswJCb27XVOJB0G9zzkJejW6JiBYr6vcjlmMrTEWIKESsET+/b2BnCM58vdZzEHzIDBJ90yPD07iZlTV3sS1tqR3VhY9H/m4DbmpA6a6NscauA7d6kvcfpeJ9tK36zCOuEs6K53pnszXBO4S23B0Nu6TNfHJvSJIpnf817XKmKuArbtoK4K9qn8Miy7rGaRHh5y00Mecs7Sl0vDzxjQc42TWWJMembfsjRhIOpgf1+XNwswuONRJz9uD30Lt/yN4aormypMl5Zt9+g/a8b6DOl95EtKZbVbiP99keuzYJN8y/LYaDUx+xphdMhOW8a+fJ/OHNuKyx2wF07UMjB93NjkuTpCVUrDstTdvHg5lRS3p4mSYVpdBj75XyfqrIlUJx5J0Elf60vnidHxqFW1tLXzoLOPsqQ/diPJTXj90e2bUPR+VMdkGhL7pazyhag6Q9A6YjbNzBw/GPCTFDkeru7XmbgxhZM1b8LwaXx991+RnIbAdif3ENI9NncYmxcvR3UxzBtI3LXVvkm5AqUtQl8lbO08CASsVGRfdakXXARkIgOXOiJPXA8biYdM8rFhc+NklBWnxuS1xIjZT1tj/HNBLuN8NiyYOi4vU02krHfK4yune3+7Hlwzdk5TI8klom74iwXfXWLH5g5jz4FDWFg82UtXDyQdjevn2NzhgT8AA+fys0IHgU29Id0Fs1wU60aoz7aOUO+LPFmYbQQ8duOsk+xNGb+bDFO96MfKeAd2FTT9FUXrJGZgu9QsyTR0EEt9m01SZkLtG3PM1m/T1m3b/eTA9jG4hIAzUmctZRl7DhzClfNnsOfAoYF34JXI8ZXTA1KtlJSWThxN4hJbymLSqZpQ9saa2DAFaApV24Seb5oA9TqRfdhlkM1KETaoetm+M1Xf8l0UppgztjKaoifaUHRF6rqv6fn8rKLk3EpiBtDzDAD8VQghpC3J38e6rpfBZTiJmR9NH5hyR9fSCbOecezGWSwsnu2RMcM2wLjzsZR95fyZ3rGFxZOYn51cYFM2AAAgAElEQVTMjI+hexq0EXUGizf19UEby9Vtv+t9j3fxmX7TIdtreQM9dR9fKyfjWHaaPBENXREMdVRhWI7VJ1pLzMCglJVFvPqSHehLBmzYke5fjHOXNntbmBm6BdwlMchyxV6S+0iQrG4wETSTLH++nhI1659lJpjp2ckeiR9fOd0zfgHuOCVt9sYoGv40BlzCh75q1Pul7B9Jm9o9MSSuP+o+z9TvQjZOufqtTx8IbZOypOYy0Sodsz4bFdFDzu+/ObAN2RVsSA+ObZIQXB1F7gSSxr8iRrfQZb1NsuBt2VJ65u3agDlNF288mRqfSK32M4U6fmw9eyy4CKAqaVnfEi+3/krj6PLGDqNQIe8TA7yD1Tbh2rZ7u77ngT4ms/pf2xI1tIqYbeSik4dNgpVkJvW6LGlkLclkp2MDiY9EyAYBPY6zfk9beXVil/exGRuyiFvPSceBjFiC5ro+Nne4p7qQWVo4N93YjbOZ25NdZfAl9Cbol/MY4IrCRMQ2LG/sGDhHlrOJBtRY8CVnoPmGTEariNkG3+DtuoQqDVObFy8bjXAmS6tpYK6vXhggDykZyxgUfC8ui22Q6xK2/jkUXEecs02PicBqnT0HDvXUH6xT3rx4uXeM30XfEOHrqrR04iiunD+DpRNHG69rli6NdUhcuurNBlcoUSBulhHTs3Rp3Cd9VWyEkHMb0GodMzAYxjI2dL2ZnhECGIy5kcQXHrze5MajwxaM36ds8nt4lpLBjCT8LnIy0Q2EPpDvKElBl9p8jbdlDOSs+mqCZCX9812QCRBkX+KJL5a0rO8yleB9AVnEGLMtbX7uNv9qXvU10Z6ho/USM0f7KuvegF1dYFKZzJy6ui09jy+kmsLmH+nrJ2kKciRjJ2eBVRZMytOzk9bofLpaRE8BppfHp8xVwKce69RN+jz7+MppY32bbAOxYJKQXWpA7tdlkLL8XBXZVtEnWkfMtkqRUp1riWzrHOwSlxWDAPAzNOQlZyC/tJa1aUAP5WlLbaQbVVgC0TNj2MI+yjZaX73gJNw6pGX5XFkf+sTXBoORrmbh9+K2jRVx0MeTosr423XYHKpcRbWOmBlbOw8aU+JkweYJ4bvskyTrmgBCszuEdDSbc7sL0nBqqgPWMTOBLyyeHBj0MqRp1kQjjYS+k5Kp3qsafPqEJaGX3/T9yvkzAxNVHQkCuO1kRp+qwHVXRtwZF0x2mCxwfy5CslW0b6uIWRLR/P6bPULO63amE7qtgXUi9N3xJEnQl6BMmxhsu4tcuQLl/dZXL/S8KxjsUeEKZi+lZVkO3fgnsbXz4LbyNsGjQofU/5vqcWp8Yls9L5042jvOqp2p8YmeH3wZyNpB2gTUZRwtqvrKS85VGK0bbfy7485XbRs0ugtQEvlqJpdOTW9Ylz+zj5RqarCQnUnAdt/ZLEIP1auZ4lTYOprNgJJ1nX4eGxFtqENaluoaW+Q2CdkOWXVe9sCVdcPtaZJW5U6/otANbaZgYdKXOnZUN5NPtt5HfFVQcsNJ2dHn8qKQxExE/xMRfYmIrhDRJ4joFUS0i4g2iegaEX2SiG5Lz315+v1a+vubfJ6hO5K7zmNkSbIuydjmNqdDJ0y9k8plvKujsJU4bwAU3/NlNmTArSOuEnl8sGM+O6S+s85dO7I7Kimzr7gNckKTgaY45RdHT6wKMscho6he1tRGMQIFcboveU9fVOGSl1tiJqK7AfxTALuVUi8S0TqSaEDvAvBvlFJrRPSbABYAfCz9/x2l1A8S0QyAXwfwM65nvOaVYwOuLa6tvyEwbc9msNTsSglk80wYRCI5xF7ihc7sLB244n1kBRoyHa9iOdc0t6bljR2YGq/mWdIN0waewHSpuIxM8T6QOSGBcoxlulReZMt8MnH5ryqq3J5fVJVxK4Dbiei/AnglgGcB/DiAn01/XwHwy0iI+YH0MwB8CsApIiKllLLd/PkXtgDIBvab/ef338wMqmMD62OBbPJhwjKd5/P8ojOvaxnGW2cB/w04tncJyYYSKoHL+gYGpeW6SdmcFaQcXbILJn/miX17U/XdjtJiAusIvXfs9mNfaZmYQI4B/hyiPpTk7CsIVKFPz03MSqlniOhfAbgB4EUA5wE8CeDPlVIvpac9DeDu9PPdAL6eXvsSET0P4HUA/kzel4geAvAQANxyy60DhjZfcvAJGM+d3RSB7fjKaawdmTCGTNQbPZltt6djykrRZIoPoc/G+lbx5Pv2GVteZ9OR+wRkt9WvPgHpemofMq4jq0sW5GD2nbzqkOJlMgdgsI3rkpZtwk/oRilf6Buh1lf7m1l0SR0wZ1mxwRTatG7k1jET0R1IpOBdAP4mgDEAhRWWSqlHlFL3K6Xuf9nLbukdzyLlUAstN5jpOpfvre5CJgPLy87jE1chq8zz+28ODLysJVdWjN0sAjUtn/XkrqbfspAVmB2ozy81dINS1kAvsgrKo/fX42PoKMuFzVRnC4snB4zwRbwmsjZ12epI32wSUx9cpR9zEVXGTwC4rpT6UwAgot9CMu28lohuTaXmewA8k57/DIB7ATxNRLcCeA2AbxV4fqk4vnI6U0rXiddX/72182AvBKOeGqqurcD6e5o6vknP7COBc8quqXGz1FyX21eoYcxn1XZs7nBvyT3MkBIzCygxkhm4+v/gynE7ZHhd2/ZxVz7GJqGIV8YNAG8nolcSEQF4B5Jo3b8D4KfTc+YAfDr9/Hj6Henv/8mlXy4CX3Lj2d0U5GV99YJR2vDdNKFvspDX6D6veSULU0hSPXjS9Oykl4+tj7EJGOzEPhJ4aJbstiMvMWXVpSuCXxUTm+kZMjqgK/OMD7I8LfSVoyn+tA3cD6dnJ3vX6mM7xsaTmCiiY94kok8B+CKAlwD8PoBHAPwfANaI6FfTY0vpJUsA/h0RXQPwbbjyp+cAh60MIQA2PGX5Lmcdk+gPsJvWc03Pk7M84O4gWTpO14TjgoscQutWoqmkHDK4fZG0W3UuarpBssoEqUxudRtps/T+NnVOGe0fC4X8mJVSH1RK/bBSao9S6h8qpf5SKfWUUuptSqkfVEr9A6XUX6bn/kX6/QfT358q8mxTQ+QhgCxpgwP3+G4zztpN53qmJGwf320dPhsliqBun+fYKINQ8gz0vPXKtg1984Xso3WTJlBecCqp2uB45/rYku9vqwuufx+puSoib9WWbBs2L17O3bnZv9dlTJC7/qReWS7l+LMe/D0024keED1kYLGe79jcYS/PFB/46J718/U/vq4py8S88J34QwSEopPd0omjA6503P6MMuu8TJIqem85jqSQk0XONnA9VrX6GwpiLuIixBVtC/oig8TrErOu9+IBIS3CMSSWOqQe3+ws8lwXievB9IG+dDfKGLtxthf35fqjM70/3kUo/0xhB1wp0YBEmNj14BqOr5yOrosum6R8yVmOw5A0VqZ0XE1Bo2NlMHz0ZkU6iSsg+blLmzg2d9hI/ssbO7B2ZHdvELDDv22iYD2tvqnCBN3CLS3Mvr60eUnPpIrJOqb/5nNumyDLX9T7QKbtcoET3soVm0+4AB28KWN99UIvR6MN0sgoSUv2t5lTVzF240Km4S8PJBmbSNNlg8lTDtcO3zrRConZNXOaArqEwkX6tghkQD/G8cypq5g5dbVH1LpkzSqOoo2fFTdEDx4uyTxUMtD9aaWPrUmPnifuRptUG/LdYpBy1n1Mwd99U025kNUPpIQu1XZSNTC//2ZuI6Nvm7Nhzjb29THgElRMhC1dGmVfbkoM7lYQs4nQuLJlDIiiUrOt40tvCVf5bBKGKUymz+D2ScAZC65dfzqySNikZ7adrycVaCpiSVR5EqRyzOei2Np5MLdajA1rM6euGgPzh8CnvW2EbMs56KpLPXkxACMph5axTDSamL9326uD/GqBcqRmn5jKLGFIdUMs5CXokGuyAhnZrtH1yNLY15QIdi74xlH2fQcfAue+Fjvdko5Y+ntJvvx+7CMf0sds2WLKiqjIaGOG8EYT85u/7/bMpVfMqGfHV05bfX9tncGWWilrS3bsGTlWjAKXTtglVeuErP/mapc6XbpCB20W2eWRbMsgaNt7hfY7nXxl25oSIvjUp69Rj/vM8sYOa5jOLGlZIjQuSp1oNDED1VruXXEHkkAyieHFN99dTGQNXPn7wuLJwgNd6sRdxGojZHkfV31xPOq6YKun+f03e0ayEA8V9uKxJa5l2LKlx4Q+4eUVWmS55AojZFzKccVxonUdsikHpaz7GPGl27JdvvHEnIXYlaxnHdafI41f+oANyXPHQfnzwLYE5PuF7vgLgT5QgLjL/DrALmvsqsaGJ/ZQkBOLiRhcLmtM0iaETEixsl67Vie+dg9u79CVjkzaKvtCSCApnZxDVzw+fZDvX6fA0Ap3OZcUGsPbQWJ5YweuPzpjfKYrXgEjRGLmhrd1Lt1oIWd7nfz11D8LiydzrTSy6lL31MgLLm+oC2AZuHL+DHY9uIblDW5fUxzmBPKddS+YrGcwOKO7b8LevMGtJvbt3eY9kVffKq9bO7IbC4tna9PdcpjOkP4ysW9vkEdI3Wi0xMyB8l2ILYWN3TiLzYuXrVLz2pHd1qV5qBqDjYW6jpG/s1TMGatd78rXyw4Yuq27DolWj6Erkdc4FArXhKuramIMWl0PLd/PJbXmkZpD2t/l8eC7uvPRl3MdNnUF1QQ0mpgB+3JCJoWMia2dBzFz6qrVkX9h8WRPz6arMYrC1KlDyf74yunM5Kcm2HTFserX5fKok7NOxhwLoYgl3wUb2ZpUNbzMjS0tFn0fn/grodjaeXAglCbDJ0+jrTxSnZEVNCur74W+29T4RK7+XNRomOeZjSfmOsAD0qYbXFg8aQ0bGAqWmn2ykGQ9jxPJLp04ahwYLgnFNBBMaiL53iFGMRNMaaSkUUjqHk3HixI0X88qIhkOMksyLmqo474VYgScGp/oqUF0uNRhvkKDL/GYhBYfVUGeScLWL/Oqveb33wxy4Sw6YeYVbBpPzLYGKHN5u7XzYKbrT0yXG3arW1g82VNt8M69rEFlMwDqYEOUD9iXWSddvSxFfZT1+g2t0xgEzc9kw56cCEzvF2v5zfpfwJ6zUYL1zNOzkzi+ctpK0EWgv5vrXU19qUwbgWyHWDpgW9+V/bAuu0fjiRnAQBChK+fPDHSKsvRUemJHHSEbMUKg74SL5S4YQlw6KevvmWdgcNuxukY3bBaZaPNY0VlSDkHsNpdxH7IIQL6bbXXmE6gohkteiL7ZhCJkl7f+2WZjcslrIlpBzEBCzlPjE95O7EUgI6G5gsaU1bDrqxdwfOV07TuWZGyMopPD8sYO7DlwyGjo0jcP5L1/meczxm6c7YUBKEpy3L4mdVYWWHL2KYOc3HlF5gs+d/PiZew5cAh7DhzCwuJJ775pelbeSbgIKetoMikDDXeXe80rB7PosXW4rG2semPtOXBoQDqXYTxl1K8yskasr16IngMwJLuGvgMwlupGvtfU+AQWFk9Gk0I5i7if9FnsfWZOXfXezu3ClfNnBtQSJulZl5YTtUuycmFC5xjcprCXcrxkJQjWYYqUaJqkXWOyrPHqm3ldGu9CCFnGcK7ap7k1EjNDdpQQw0aR5/EyXM+GwM8uOyKV7f5NcIQfddhIJ4SMXBO7iZTzPC+mrlTG+tARuy/KHH3SOBvyHLYdFJWSq/RvbrTErEMSMUtbSyeOlk6MLnVGXmlZTig8I8v78FZl173LzLmWZQjKK+Vy7AWeYJsS4GjtyO6BSIU6TK5zLDW7yNlnya/3L5aaszI8y0DvLDW7UGU+QKBY3Grfvu2qY5aW5/cndaULcU3ent0aiZk7qd6ximQv8QU79sfW+fIGEE4HpFu6Yw+i0OAxsbG18yDWVy9s2/lWN6Rf+tqR3Zjff9O49VyHVCUAfSOmJHhfYjo2d3igPnRSzlo1yXp1IcYKk/Xb+m5ThoyGyJ/l39T4RK+eTZjffxNT4xO9RMmmPwmTepO/M7HzPeUfx063CQfdlmwPSAmiCjKWyJs5wgbX4ChLPTI1PoHlDbtEqMO11T2PlOuT7SQ2fCLuST0xT4xMCjJWRhYSMt4x8D1UB836Zr1/uFQY/Dtfo2fjYYny+MrpgXRTRZFMCP176lneXZCkPTW+3VvCB6a2tUnPskz6ZJL8tonljbihHYoik5iJ6OMA3g3gOaXUnvTYnQA+CeBNAL4GYFop9R0iIgAfBfAuAC8AOKSU+mJ6zRyAf5ne9leVUiuhhU3IZUevw9uk6DLADakvM3lQFCmDvDffMy9MHbPfYf2IOSYp9z06+mSTRTRlQZIHT1L6cluPgqaHMAX6dZCVMy4vOfMKTSb9NYHLl/w+WA59iz/QV3csnTiaW7jp7yg93TPkAugRf+iqkiXgY3OwtkMeZF0v253JGbCP4zwGwCJ93EdiPgPgFIDHxLGHAXxOKfUhIno4/f6LAN4J4L70bwLAxwBMpET+QQD3A1AAniSix5VS3wktsOzovVk2ciAjE1ifLZEnE7WUhnyXqy6ESCi+cNWljy/v2pHd4pkzA8RQBylLiUovo+9WYlknHH2uLGQRMkPfKj6//6Y1MFJM4UWqTExbtvMiRoCl0Ov09vap8yok60wds1Lq9wB8Wzv8AACWeFcAvEccf0wl+DyA1xLRGwFMAfisUurbKRl/FkDh0bl2ZHcUlyUfSEKVHSE0E7ZpgIS6MDURMmxm3f7XOvTysC5Y3+Qi9ZcyBZFLxwyE55vLwpXzZwoZV7NyWBbpazKQ0vTsZKkZWHwRowxSFw3Y7TFVqTvy6pjvUko9m37+BoC70s93A/i6OO/p9Jjt+DYQ0UMAHgKA73vdnV6FSSQF36LnB0t8Lj9THa6MIEB+Scamp3ZZqef339ymK9eXj8n33d5qlbEbZ4MCJk3PTmJ5w/v0YCxv7MDUePLZVRd8nvQbZv0sH9NVVhJrR3ZnLm2rEhoYUtcMxDdeJcbbwTjKwGbjJmJfhBA612VVEnNh459SShGRilGY9H6PAHgEAH7ozT/gdV/WPVc1m+kEbSMvWyPGko59JHU9UFCWe1EofOKKVA2fLc6cnURCbiiQxzhGBbebri7QN6ywB0ARXH90xiv+twTrmqdnJ0szkC+dONpr610PrkU3jDcNel+qimPyust9M1VRIP3/XHr8GQD3ivPuSY/ZjrcGpiVglp9xVtqlvMhyeTLFo9B/94HvBOIbSKkpODZ3eFv9MLn4lF2vf3a94j/pqVAEeSRuzo9XxsarsRtne23Nk0bd6oy8z9avM4X2rHMDV15ifhzAXPp5DsCnxfH3UYK3A3g+VXmcA3CAiO4gojsAHEiPtQ4myUnCFKLQ9ltboUsNofnrqtxBlRWn2OaLy9BVGb6EF8sYlreuyrBZLJ042pvA1o7s7sWUkbFDNi9e9o7hEQN5MsjHDKDlQhHp2sdd7hMAfgzA64noaSTeFR8CsE5ECwD+BMB0evpnkLjKXUPiLjcPAEqpbxPRrwD4QnrecaWUblBsLPRdeqadeoyyos7psEllWdtk+bqY6ofQ960rS7G0wps8NXToA1b2A5OtQT7HBZltJgvH5g6LlFd+kL7wMXf76fGrGUnWn0Evl6y0aUWRJzGATshNRiYxK6Xea/npHYZzFYD3W+7zcQAfDyqdB/I4p4fCtDR06ZddSUrLMB4wyYZIKUW2y+pI3me7ztZ1fpmTlzQAAtvrx+e99RgVOinb4EsMIfDRN8s6lcTJEm4McuZ7jGWc149pfRVrR+KSc4w+23RSBlq0869MFJEqXERriy8Rk5zzSr4hkmIWdAOgiwSrcguURpsQX1uOr2Bza/S53lUmIDtTdd5MHzp46zSv8qowCE7s24u1I3DGHckLH1IOWY1koc6krK0mZkkgRYjOp+PapeZNb1e9siy6dRhfsqReXSKvU0qRoR8ZoZlxdFL236adQPfUsO3QtCEryJIOGRqUETuIkSRkiTLI2bcvhSQccEH3Ua+6/7aamBlFCE+Pt2zruC6jj68EnOXTXBQx1RNZA1gnpoXFk0H+zFXp4gE/6cnXb3vpxFHnVmsXGfm48dlQhOy4bbIkZrlZytSXeCUxPTvp5SI3uAPUD1krhrwE6Tsu5ERmcpsMQcIZyf0+8vmgS9tLzGXMYHmCvIRIzbruOSZBuzpzFhnoRhuf9zfp0eWg0o1AQPXR5CQRZXlTuDxspLSq/w+BbIdQlQXXp0nf7LJpLG/swBgGd+y5yifLZAq67zux5Hk3+d0nAJVEUb/x2KFzdYeBjwxEtMhGa4mZwR0vJsqOW6vn0wshaBPBhAyCmVNXty2rj6+czvW++gTjY4mXdVuG1CyXoKyeCm1PvUxFl+Q2XaVpItOPm36TsCXOldB37JnAcbJdiKm/tfkR6wRpU2HE3AZfZsLVvPduNDGP3X678bhLWpaqiTySIEPv7GU67YfCpavM8ssFOKODJJsdgCGKWijYhczkJeLy/Y4B2xJUhvI0pQOT7czn2jx9ihqDTKqMLGnQ9LuU4KVB2YWtnQcHghxJhMR74ZgiRWAjZV+Euinqu1/zrLZD8zHys/Ki0cRsg1TIyzgZpkBDMtSjaXDa7p0VozWmPtcXZaXRykPENnWMTY9pk1pjWr6zBgL3ge3n7zacF6dM+oDmFcvg88Mhg+34rjxsq8syJUYpZYemvzJJy3l9x9uGVhIzQ8Yx0OHS4YUsbU3LxKZ0Alc5QnR0oTpvNmrY/MdNPr9lSMplEkosmKz6HKIzyxjoarep8YltUnMoys6X6VLBSPhIsTHbuo7kqqFoNDFvvfhi5jlVV7KPqsAXZXtp5EFWmXwGs07CpowcEm0g2CLQ+2esXI2hLnRjN85uiynO8BU2Qsvs47ud5746bIJYzFVtGfYsGxpNzDpsjax/t3Uy3SXK1RlYGswizVDdNWCOp+FLziEdOKRTZuW3c12jY3vSUO0E8b76Lr1hR+wEuiFB+02kzGOFDcAhLo8u6L7jRVwFQ57J8FU1hpTJZ2zE0C8DLUnGKvfoL2/swMypq5g5dbV3PDQQiY/Uxwk5TchrUGSYgq/nWY7K3XWmTpglBXE5QshYz+SdF01cLVSF0HCtPvfKqsexG2cH7C78x0GHGD4JXbMQQ0oteo+YknKbostVgudf2Br4LomEI1utr17YJjFkBfLJwsLiyczluE7KeUhKT1dkW2b63F/XKbvCfjI4HGnssKQ+GEVCBrYHn4phrzDFlvbBYM67pI+5EjCE3NN3p6UvYkeBa7r6rNHEDJjjpGadm4Wp8QlMz04az8/aHWXa3lsETFDrqxcyt4QD9tjHvgF6bF4Q/aSp2Wh7GqymIKYR+cr5M8bdiPqKSN9Awt9lwHufzSgu6P7GTSfBWIgp3DSemBmSULIkPV161DuKjVhDiFGSk0vSzQLrl2M0qq9ObezG2V6OPo6rC8QLxzmq0nAWYgXQN4HbnseJ3gY23bHsM3sOHHLmBOS+70rA4LsJJARN96BgxLQftIaYlzd2GIl4fv/NbVKgrePICtM7n0/kLe60NlLOq86oWo1w5fwZrK9ewK4H1zBz6mqvXkPKUlRqHpakAXVDN3LxxCsNyqEGPf1803gybaOWaDop+963rkmhNV4ZJuuzvrXYtiXY1UnyGvAARMut5ith+u4+zLKA73pwbWCnHyN0e3in0mgmrpw/04un4SJlqQ9mASNvjIsikrKvx0advsxVusoBLZOYJSQpc2fyCfnHRLy18yCmxieiZ6kuEyxl+nQom7eK6Vom4zrjz3bIhqntbKtDl8+yfp1U0+leGayeYIO4qQxlqC+ahpCxEUPKbo3ErMNk3eag4D7wST/fNCQE6p4QfAYJd7L11QtYOnEUC4tne5b9OqTgKnxc2w5u16z25VgWLDiYNl6YyFyu/Nj4NworIlffqzMyYmskZhP0Dre8sQMLiyedVmWpDiiStYR9qk16b904yW5IRfWqUko3DVQdWRMPe6YsnTiKPQcORfFhDUGnZy4G02poffWCUUDJSjYr4TIADhNZ+woDdeSobKXE7HL5AvodyxY1q8g2bhuZSOOZPe28f7YT83O3v7dP5zK962Ca9qtRostJ1GHUHAX4+s7rRkFbKAGpzktWT+E2Ex5PeVc9ruvKDrkQmsmmyD1D0EqJ2ffF2Td4YfFklMYtQjS8czHvPbJ0XDYH/ND3LtvVjd3z5vffdExgHSR821APGJV1HeuOgb53ka9xOcTAnnUvn/erU9VVh/tnJjET0ceJ6DkiuiKOfZiI/pCILhPRbxPRa8VvHyCia0T0FSKaEscPpseuEdHDeQvMBBXqCyqXZzHiW+RFzEYuMtnYiL5sKXdi314snTiauaFmWBBT2ou1HT4Gqgx5W7f9gVWRWenlYsJHYj4DQH/qZwHsUUrtBfBHAD4AAES0G0ke+7+TXvO/EtEtRHQLgH8L4J1Igt++Nz23FpStJ/PxhAiBq0PE3qoaE6ZJiH2ngX5nrkOHVxVikYqpz2aFDOVrbFv0844Dvk7G3BgVsK3ItJ8iJjJ1zEqp3yOiN2nHzouvnwfw0+nnBwCsKaX+EsB1IroG4G3pb9eUUk8BABGtpecG5exxvXwdmaJ1mGbNkC3lTUGoP3PeZyTtObk9+twQIe+kWTQRA69M5HfAHssiFLo6I2Y43KbAFLUySbrB9TcpxnXFxOyBnwPwyfTz3UiImvF0egwAvq4dN073RPQQgIcAYMer+y7dcrujaYZuitQ4duMspsb7KYqAdpFy2ZD+56xSmq95WV4mihjGZPYdoC+pulZQnARCEjCn+5KIFVKgKJoStN4WdMmUuo3bhDMo2e5V5N0KETMR/RKAlwDk9DXYDqXUIwAeAYC7vv/1io+XGWegLMjG4xRATUJILN9YGMw3WO1uqroQSso+fdx2TybchcWTVom5Kt0+TwpZvtch9dA6s5sAABL9SURBVFOWt4SJRG3toJOzDUXKmtsrg4gOAXg3gFmlFBPoMwDuFafdkx6zHfdCFimXuXwqqtQvqmOsy8hTtbFT6srl/yZIUzERKljo54ckTgX6/Y91zKZUbHlimvvqp4vaW/Rg+1XAtiqvErmImYgOAlgE8FNKqRfET48DmCGilxPRLgD3AfjPAL4A4D4i2kVEtyExED4e8syqK2pr50HnEi/Eq2FqfCK3cWDY1SB6fUlSNuXLM53bBriMZL59O5SU9WeY6iv2xO/zLnnarYq2blKI0kxVBhF9AsCPAXg9ET0N4INIvDBeDuCzRAQAn1dK/SOl1JeIaB2JUe8lAO9XSv11ep8jAM4BuAXAx5VSX/IpYB0VtbXzIK4/OjMgiesbJmQm5e2hQHcbjSF5dhz6bMMuA1WpXVzv5yMt2Y7H0l36LMX18vimOvOBK/63r8FNGhL1vhc7Voxv6Nksvbur7UPbNmQTVkh2mTInCx+vjPcaDi85zv81AL9mOP4ZAJ8JKl0KV8eOrcaYnp3EsbnsjBCDSTDT/IDpN91a7aOPcpWnTNj0zHIn4/z+m63bihtr0NiW4lmkEmoTCclqLs/3OZfJXTcilgEfbxLTqkj/DehnE7ddL8E2nL63T4I8O2N9+KZsCb7RO/9e88qxSlUYCSkfLnwPiWFxHyoyQbikb4470jZUpUZhz5X11QuFDeCmlGlFkNW3Q0nRFDTI1Tfk/ef338T07GQwKYecZ7vW9id/D0UrY2UwYs9eIaTMbl+Dlmf3RhAGuzQ1Hbr+t2jwJxNYyuFQrD7gwScHbR0hS3WJL0Y/1Pu0Xtd5SLlMLwxT9DopzdtWitvHziB0yVde5/pugs9qRN6Hz3FF5Ss7fnSriRmIR8o+WRsk+m5f/f9tjmfMcSsGVTRmHXBsgmaJ2j9hQHqd4diWFoxJbpbh32K2k410gHASdfW5pRNHc5Gy9MKoWhjQ/bB12I7bVBhAmC5YlkGGBw5NLFuHh0ZridlUuXklUZv3xblLmxi70b9fVsQ03wwjTUS/8/lvxpyenSzsn+2zy1Cvc5MusQ95bDL9Pmn4rTiktFeWkdr+noOwBbCqgoxNUjPDRxeuS80xJ07fJMW+96kKjSdmV6MzinS+6dlJ45KFo8GVtQGiSeoMORDk5ONDuP1t1YO6wFCyNk14/XLpA3USU+ODiQ7qcnOyPTePlGWS5lhllud+ZfYvvneo5GpDU3YAMur2Y248MZugNzD7d+bRpel6ZemeVEW8iKxnuJZ1RSHfnSfARAoePM+0EsiWcraTtY5+JhV3RpnQpXCZ8N3k5CNQhBCVz/3qwLlLm4UN5nwfhqvfcJ8JWamYzs3qayGJBcpAo4l57PbbjZ1Rzr5FLNUuvXIMaTnLOJm4oRV8SAFwphc5sI7NHcbUONdDone2TXhZQcZNRjo+LonnyvkzxqwzTXH2Z2T1MV0qHBaPHBtCVHc+hnpWi7nG3fLGoGonhCh9znURfpUSfaOJWYepo5clRdgkWZuemc/ngDG806vo4NRJLDaYlG2Rws5d2rRmT7FB37Gn+0ovb+zAsbm9PWnLlQqsTYhJxKFbketUi2VJ865NMkC/7D6CUF0brqpGq4jZli6HkTc1TgxItYRu8HA50WdheWMHpsbL18Hpg2uw7ObIWy5klXXXg2u4/ujhAat93Tpjn+WtiYBiS8a2DRSyHWK76ZUFJmXbxLG186D3yrRKw3rdddoqYga2u78AyZL82Nzhno7UV3qQ7jB5fKLz5rXTSce3vLHJWZbDFkqV/YtluE4XbOXjLNyy7fgzS8xSnx7L2yFvfQ2qX/pl4TLrZBzTO0Nv5/XVCyl5DSbjbZqqR0cWKQNuO05bPZxioNHEvPXii17nSR1pniWdvtQKjWXR37bcv18sVUbScRNdb+xZ3ETGMsNyf+Df7ElsoZIaE9zUeL9O9Ocfm0sk53440D5cz/CNtZAXrILRDbA2UubPvoRpigFhOs7Chq7T5WdNjScJVdlmcnzldOWqDduKywTdt1wKOG3eCxATjSZmAEbVxblLm5g5dbUnhUmEZN8wDd48HXrtyO6Bsvlaqfn5WWWuclnFJKlLsr5lsVnUfWwBoYOyzHrhsuiGJh+1VJb0nCdanmslyNdxu7HhuqqNJXq96KvP7ZKv7lvO/uYdGI0m5udf2BpodKn3XN642lNhSKwd2Y2FxTA3t7wdt4oUTFVBqnVMpDx24yzWV/2Wl3qdTM9OGtuqjYjtBRACU93PnLqK+f3JZ7avsM5W79fcX0NUBLaxYbrHsHuhVIlGEzPDJoEky8y1Ack5xEsjhiQxPTu5zeDIGwJcHZU3sPgg1Jc5yw90eWOHUefL34HkHXh7dsjkwyodV1hImwskUL/RpY3I6sf9tpCSaj4wubsydndtWBytIGbGYIP3yWfXg2u9WA9lO+FLYx+TpVxmTs9OOpeqrqAtsaRvSeImkpa/m2II9HY9GiRfH2SRsomc+dioD+pQDx6/7ezF1AQyQH9izBv8PXQXYIdstIqYJfTNCzOnrmLtyO5K0kzpHgpSV8yDQKpgmOjm97sTtNrIuYjvpk+ELiCZ3PrPSpbDvnEafHHu0qY1k0eVu9pMMS58J4Qy3RZN9856nt5nYk7w0ggs+63Jva0p4QWGBY2Ox+wL7oi89I6Vr06CScpGVNOzkz2pXUKqLNjCb9oJ50Jst6FzlzaxefEy9hw4hD0HDmHXg2vJjittQFdtIXdFIosBPU4uYM4rmLUFvKwyugyJNnCfs/X5vG0o43PoW++nZycxPTu57ZnsOdKhOKifR7V5uOv7X69+9n0/6X2+NFT5giOkAeGdWJe2TFJ0yL1dkdrK8Ol0GXbK8JmWHis2dQawfaNJGeUYFnB97jlwyCgtF+03bN8wGW511RfQubvZ8JEPP/akUup+3/Nbq8owwZYmyQYm5aKdyRVXlstVFGWGFDXdNzZ56feTumY5wIvsksxTjmFB0oY3sbyhS875+17WWOKJVcbwLjPo1ihhqIgZCAsMlEgB+eM02IhE3/vv62YGDOp1dQk6NjnXvbNKGh4ZfX18N7izkKVSYTVHkcnIJi0D/SBY7K7H6KTn4vDJkv1xAO8G8JxSao/22z8D8K8AvEEp9WeUpMz+KIB3AXgBwCGl1BfTc+cA/Mv00l9VSq34FLDsmAAcRCfvElffMWgiO18C3J6vrJ+uikm6zcH4geyANx0p+4P141PjE9uCQY3dOIuZU8lnnThDYAqD2VddbG+r/vZxYBSCDZUFH+PfGQDbLAtEdC+AAwBuiMPvBHBf+vcQgI+l594J4IMAJgC8DcAHiegOnwLqxhkfA4yP8Y/JTV9G+xp2pH7W9rkI9ElCDoA2G1jY8CixefEyNi9exsLiyaHZsFMVljd2DNQp9xPWNxepz7EbZ7GweBLHV05vG4cmQ3ib+6WOul3/vIx/RPQmAP9RSsxE9CkAvwLg0wDuTyXm/w3A7yqlPpGe8xUAP8Z/Sqn/MT0+cJ4NocY/xrG5w9hz4JDxN44noG87lkYpAAO/ZSFkd1RR8LN8XdmaaOxyDeA2rwY6DDd8x5LpvEqMf0T0AIBnlFKXEu1FD3cD+Lr4/nR6zHa8MujJLGUAHYYe+cwHHH2NJZOyiWVwF1c2mkbKQEe+TUITJ+4yIFWAcjOYDbqvu2nlbvseoz6D/ZiJ6JUA/gWAY4Wfbr7/Q0T0BBE98eKLf5H7PjI7yZXzZ7wIVyfuJJuHW70xPTuJ+f03C/lOm55h83m2nT/KWF+9EOSNk4W667bK59dFymWrPfQ6lCTMftguuBIVmCYz/h7rvYJVGUT0dwF8DolxDwDuAfD/IdEd/8+IqMq49VXfp/7JP35n77uP4UtPXOkKrO8LE5nH7tCDW163B5+RaguW8o+vnK7dWKb7jku/cEbiKXNhIMSjyd9Wvkvd71UV8hhzfXIw+v5WVhmLXFcGfJwIsspbpB5DVRm5dczit6+hr2P+SQBHkHhlTAD4DaXU21Lj35MA3ppe9kUAP6KU+rbrubfd9gr1hjfcs+24bdspExiHrmTE2u5rsky3hTzYq4MJUNafKTxkP8b0YLCarM5bVZ3I5SiXyWeJqiN0S3ZTYWuXtr1f2aqVuiaL6MRMRJ9AIvG+HsA3AXxQKbUkfv8a+sRMAE4h8eJ4AcC8UuqJ9LyfQ6ICAYBfU0otZxXuttteod7/Cz8DIKxCiyRodUEG1JdEFwJJXKZ38iUZeZ4kVh/yzAu9bFw+0/IthuShv4fpuiZJZR062FCKxFwXJDFLZA3GrLi/ujSdlcvNld3EREyybDrBusruIuq8iCmB5JFIfe7ZJmItu7xtq48OfhgqYna5y2WRWNHdR6EDxFYeYDtRm0jaROAS+pLdp2z6eb7Xx9J75oEv+XcE1qFNCCXm1kSX4wFrIjDbYPbZlKEf1w1X8v669Z9/42P6uXKSMG1C2dp5cCCXm67CsFmPTRK56V1sEwIHKbJ5MuiTG2D2FJDHYpGkj8U85vNiYZg2V3SoH62QmLMkPVM2BWngMhmIdOiSqsnAKA1ishw2gxd7Ith2SFVt6e6kzA4d6sFQqTKI6E8BbAH4s7rLouH16MrkiyaWqyuTP5pYrjaW6QeUUm/wvVmjiRkAiOiJkJmmCnRl8kcTy9WVyR9NLNcolKk1OuYOHTp0GBV0xNyhQ4cODUMbiPmRugtgQFcmfzSxXF2Z/NHEcg19mRqvY+7QoUOHUUMbJOYOHTp0GCl0xNyhQ4cODUNjiZmIDhLRV4joGhE9XOFz7yWi3yGiq0T0JSL6+fT4LxPRM0R0Mf17l7jmA2k5v0JEUyWW7WtE9Afp8zk41J1E9Fki+mr6/470OBHRb6TlukxEb3XfPVd5/raoj4tE9F0i+oU66oqIPk5EzxHRFXEsuG6IaC49/6tpnsrYZfowEf1h+tzfJqLXpsffREQvijr7TXHNj6Ttfi0tN5meV6BMwe0Vc3xayvRJUZ6vEdHF9Hgl9ZTez8YF5fcrpVTj/gDcAuCPAbwZwG0ALgHYXdGz3wjgrennHQD+CMBuAL8M4J8bzt+dlu/lAHal5b6lpLJ9DcDrtWMnADycfn4YwK+nn98F4P8EQADeDmCzgjb7BoAfqKOuAPwokrCyV/LWDYA7ATyV/r8j/XxH5DIdAHBr+vnXRZneJM/T7vOf03JSWu53Ri5TUHvFHp+mMmm//2sAx6qsp/R+Ni4ovV81VWJ+G4BrSqmnlFJ/BWANwANVPFgp9axKM3srpW4C+DLcabAeALCmlPpLpdR1ANeQlL8qPACAM46vAHiPOP6YSvB5AK8lojeWWI53APhjpdSfOM4pra6UUr8HQI/vHVo3UwA+q5T6tlLqOwA+C0Mi4iJlUkqdV0q9lH79PJJEE1ak5Xq1UurzKhnlj4n3iFImB2ztFXV8usqUSr3TAJxJNWLXU1ouGxeU3q+aSsy15wgEegkC3gKA42YeSZcoH6d+lu8qy6oAnCeiJ4noofTYXUqpZ9PP3wBwVw3lAoAZDA6euusKCK+bqsv3c0gkLMYuIvp9Ivq/iWi/KOvTFZQppL2qrKf9AL6plPqqOFZ5PWlcUHq/aiox1w4iehWA/wDgF5RS3wXwMQB/C8A+AM8iWV5Vjb+nlHorgHcCeD8R/aj8MZUUKvd/JKLbAPwUgH+fHmpCXQ2grrqxgYh+CcBLAFbTQ88C2KmUeguAowD+dyJ6dUXFaVx7CbwXgxN+5fVk4IIeyupXTSXmZwDcK77fkx6rBET0N5A0xKpS6rcAQCn1TaXUXyulvgfgNPpL8MrKqpR6Jv3/HIDfTsvwTVZRpP+fq7pcSCaKLyqlvpmWr/a6ShFaN5WUj4gOAXg3gNl0YCNVF3wr/fwkEh3uD6XPl+qO6GXK0V5V1dOtAP47AJ8UZa20nkxcgAr6VVOJ+QsA7iOiXak0NgPg8SoenOq0lgB8WSl1UhyX+tn/FgBbkB8HMENELyeiXQDuQ2KEiF2uMSLawZ+RGJGupM9nK+8cgE+Lcr0vtRS/HcDzYvkVGwNSTd11JRBaN+cAHCCiO9Ll/IH0WDQQ0UEAiwB+Sin1gjj+BiK6Jf38ZiR181Raru8S0dvTvvk+8R6xyhTaXlWNz58A8IdKqZ6Kosp6snEBquhXRayWZf4hsXD+EZIZ8ZcqfO7fQ7I0uQzgYvr3LgD/DsAfpMcfB/BGcc0vpeX8Cgpagh3lejMS6/clAF/iOgHwOiRZy78K4P8CcGd6nAD827Rcf4AkL2MZ5RoD8C0ArxHHKq8rJBPDswD+KxId3kKeukGi972W/s2XUKZrSPSN3Ld+Mz33v0/b9SKSZMX/jbjP/UjI8o+R5NSkyGUKbq+Y49NUpvT4GQD/SDu3knpK72fjgtL7Vbclu0OHDh0ahqaqMjp06NBhZNERc4cOHTo0DB0xd+jQoUPD0BFzhw4dOjQMHTF36NChQ8PQEXOHDh06NAwdMXfo0KFDw/D/A/ELO75v/l3lAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pylab import imread,imshow,figure,show,subplot\n",
    "from numpy import reshape,uint8,flipud\n",
    "from sklearn.cluster import KMeans\n",
    "from copy import deepcopy\n",
    "\n",
    "img = imread('sample.jpeg')  # img： 图片的数据 \n",
    " \n",
    "pixel = reshape(img,(img.shape[0]*img.shape[1],3))\n",
    "pixel_new = deepcopy(pixel)\n",
    "\n",
    "print (img.shape)\n",
    "\n",
    "model = KMeans(n_clusters=5)\n",
    "labels = model.fit_predict(pixel)\n",
    "palette = model.cluster_centers_\n",
    "\n",
    "for i in range(len(pixel)):\n",
    "    pixel_new[i,:] = palette[labels[i]]\n",
    "    \n",
    "imshow(reshape(pixel_new, (img.shape[0], img.shape[1],3)))\n",
    "\n",
    "O(KD) * # Of iterations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
